home *** CD-ROM | disk | FTP | other *** search
- /*************************************************** palette_notif.c
- **********/
-
- #include "p_include.h"
-
- oid
- raw_a_box(pw, x0, y0, x1, y1, color)
- Pixwin *pw;
- int x0, y0, x1, y1, color;
- {
- pw_vector(pw, x0, y0, x1, y0, PIX_SRC, color);
- pw_vector(pw, x1, y0, x1, y1, PIX_SRC, color);
- pw_vector(pw, x1, y1, x0, y1, PIX_SRC, color);
- pw_vector(pw, x0, y1, x0, y0, PIX_SRC, color);
- }
-
- oid
- ill_a_box(pw, x0, y0, w, h, color)
- Pixwin *pw;
- int x0, y0, w, h, color;
- {
- pw_rop(pw, x0, y0, w, h, PIX_SRC | PIX_COLOR(color), NULL, 0, 0);
- }
-
- oid
- eset_proc(item, event)
- Panel_item item;
- Event *event;
- {
- panel_set_value(red_slider, old_r);
- panel_set_value(green_slider, old_g);
- panel_set_value(blue_slider, old_b);
- r[selected_n] = old_r;
- g[selected_n] = old_g;
- b[selected_n] = old_b;
- update_colors(selected_n, 1,
- &r[selected_n], &g[selected_n], &b[selected_n]
- );
- }
-
- oid
- oad_proc(item, event)
- Panel_item item;
- Event *event;
- {
- Pixwin *pw;
- FILE *fd;
- int i;
-
- if (fd = fopen((char *) panel_get_value(file_name_item), "r")) {
- if ((pr = pr_load(fd, &colormap)) == NULL)
- post_msg(PR_IO_ERR_RASREAD);
- else {
- if (colormap.length == 0)
- for (i = 0; i < 256; i++)
- r[i] = g[i] = b[i] = i;
- else
- for (i = 0; i < colormap.length; i++) {
- r[i] = (unsigned char) colormap.map[0][i];
- g[i] = (unsigned char) colormap.map[1][i];
- b[i] = (unsigned char) colormap.map[2][i];
- }
- fclose(fd);
- window_set(display_canvas, CANVAS_RETAINED, FALSE,0);
- put_colors(0, MAX_CMAP_LEN, r, g, b);
- window_set(display_canvas, CANVAS_WIDTH, pr->pr_size.x, CANVAS_HEIGHT, pr->pr_size.y, CANVAS_RETAINED, TRUE, 0);
- pw = canvas_pixwin(display_canvas);
- pw_rop(pw, 0, 0, pr->pr_size.x, pr->pr_size.y, PIX_SRC, pr, 0, 0);
- window_set(display_canvas,
- WIN_VERTICAL_SCROLLBAR, scrollbar_create(0),
- WIN_HORIZONTAL_SCROLLBAR, scrollbar_create(0),
- 0);
- }
- } else
- post_msg("Error: file not found (or Permission denied)");
- }
- ost_msg(s)
- char *s;
- {
- panel_set_value(msg_item, s);
- }
-
- oid
- ed_proc(item, value, event)
- Panel_item item;
- int value;
- Event *event;
- {
- r[selected_n] = (unsigned char) value;
- update_colors(selected_n, 1,
- &r[selected_n], &g[selected_n], &b[selected_n]
- );
- }
-
- oid
- reen_proc(item, value, event)
- Panel_item item;
- int value;
- Event *event;
- {
- g[selected_n] = (unsigned char) value;
- update_colors(selected_n, 1,
- &r[selected_n], &g[selected_n], &b[selected_n]
- );
- }
-
- oid
- lue_proc(item, value, event)
- Panel_item item;
- int value;
- Event *event;
- {
- b[selected_n] = (unsigned char) value;
- update_colors(selected_n, 1,
- &r[selected_n], &g[selected_n], &b[selected_n]
- );
- }
-
- oid
- ntry_id(pw, cmpentry)
- Pixwin *pw;
- int cmpentry;
- {
- char yentry[12];
-
- sprintf(yentry, "%d", cmpentry);
- pw_rop(pw, 0, 0, 26, bar_offset + MAX_CMAP_LEN * 3 + 10, PIX_CLR, NULL, 0, 0);
- pw_text(pw, 24 - 8 * strlen(yentry), bar_offset + cmpentry * 3 + 4, PIX_SRC | PIX_DST, NULL, yentry);
- }
-
- hort markimage[] = {
- #include "../images/cursors/palette_mark.cursor"
- };
- pr_static(markpix, 16, 16, 1, markimage);
-
- oid
- dvance_arrow(n)
- int n;
- {
- Pixwin *spw;
-
- if (n >= MAX_CMAP_LEN)
- return;
- spw = canvas_pixwin(single_canvas);
- pw_rop(spw, 80, 0, 100, 10 + (int) window_get(single_canvas, WIN_HEIGHT),
- PIX_CLR, NULL, 0, 0);
- pw_rop(spw, 80, bar_offset + n * 3 - 7, 16, 16, PIX_SRC | PIX_DST, &markpix, 0, 0);
- entry_id(spw, n);
- }
-
- oid
- aint_multiple_canvas()
- {
- int i, j, x0, y0, x1, y1;
-
- for (j = 0; j < 11; j++) {
- for (i = 0; i < 24; i++) {
- x0 = xoff + i * (cwidth + xspace);
- y0 = yoff + j * (cheight + yspace);
- x1 = x0 + cwidth;
- y1 = y0 + cheight;
- fill_a_box(canvas_pixwin(multiple_canvas), x0, y0, cwidth, cheight, ijton
- (i, j));
- draw_a_box(canvas_pixwin(multiple_canvas), x0 - 1, y0 - 1, x1 + 1, y1 + 1,
- FGCOLOR);
- } } }
-
- oid
- aint_single_canvas()
- {
- Pixwin *pw;
- int i, j;
-
- pw = canvas_pixwin(single_canvas);
- for (i = 0, j = bar_offset; i < MAX_CMAP_LEN; i++, j += 3) {
- pw_rop(pw, 26, j, 50, 3, PIX_SRC | PIX_COLOR(i), (Pixrect *) NULL, 0, 0);
- }
- }
-
- oid
- ut_colors(entry0, length, rd, gr, bl)
- int entry0, length;
- unsigned char *rd, *gr, *bl;
- {
- Pixwin *pw, *cpw;
-
- pw = (Pixwin *) window_get(base_frame, WIN_PIXWIN);
-
- pw_setcmsname(pw, CMAP_NAME);
- pw_putcolormap(pw, entry0, length, rd, gr, bl);
-
- pw = (Pixwin *) window_get(single_canvas, WIN_PIXWIN);
- cpw = canvas_pixwin(single_canvas);
-
- pw_setcmsname(pw, CMAP_NAME);
- pw_putcolormap(pw, entry0, length, rd, gr, bl);
- pw_setcmsname(cpw, CMAP_NAME);
- pw_putcolormap(cpw, entry0, length, rd, gr, bl);
-
- pw = (Pixwin *) window_get(multiple_canvas, WIN_PIXWIN);
- cpw = canvas_pixwin(multiple_canvas);
-
- pw_setcmsname(pw, CMAP_NAME);
- pw_putcolormap(pw, entry0, length, rd, gr, bl);
- pw_setcmsname(cpw, CMAP_NAME);
- pw_putcolormap(cpw, entry0, length, rd, gr, bl);
-
- pw = (Pixwin *) window_get(display_canvas, WIN_PIXWIN);
- cpw = canvas_pixwin(display_canvas);
-
- pw_setcmsname(pw, CMAP_NAME);
- pw_putcolormap(pw, entry0, length, rd, gr, bl);
- pw_setcmsname(cpw, CMAP_NAME);
- pw_putcolormap(cpw, entry0, length, rd, gr, bl);
-
- pw = (Pixwin *) window_get(control_panel, WIN_PIXWIN);
-
- pw_setcmsname(pw, CMAP_NAME);
- pw_putcolormap(pw, entry0, length, rd, gr, bl);
- }
-
- oid
- pdate_colors(entry0, count, r, g, b)
- int entry0, count;
- unsigned char *r, *g, *b;
- {
- put_colors(entry0, count, r, g, b);
- selected = FALSE;
- undo_len = 0;
- }
-
- oid
- uit_proc(item, event)
- Panel_item item;
- Event *event;
- {
- window_done(base_frame);
- }
-
- oid
- ave_proc(item, event)
- Panel_item item;
- Event *event;
- {
- char file_name[120];
- FILE *fd;
- int i;
- extern int confirm();
-
- sprintf(file_name, "%s", panel_get_value(file_name_item));
- if (strlen(file_name) == 0) {
- post_msg("File not specified");
- return;
- }
- if (access(file_name, 0) == 0) {
- post_msg("File exists. Left mouse - confirm; Middle/Right mouse - concel");
- if (!confirm()) {
- post_msg("Write request cancelled");
- return;
- }
- }
- fd = fopen(file_name, "w");
-
- for (i = 0; i < MAX_CMAP_LEN; i++) {
- colormap.map[0][i] = (unsigned char) r[i];
- colormap.map[1][i] = (unsigned char) g[i];
- colormap.map[2][i] = (unsigned char) b[i];
- }
- pr_dump(pr, fd, &colormap, RT_STANDARD, 0);
- fclose(fd);
- mem_destroy(pr);
- post_msg("File written");
- }
-